/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Presentacion;

import Logica.Casilla;
import Logica.Tablero;
import java.rmi.RemoteException;
import java.util.ArrayList;

/**
 * Interfaz que establece la firma de comunicación del cliente para invocar los métodos del servidor que 
 * extiende de java.rmi.Remote
 * @author Julián Ortega
 */
public interface InterfaceRemota extends java.rmi.Remote{    
  /**
   * Devuelve un identificador de tipo entero del jugador creado a partir de los atributos de nombre y personaje. Método implementado en la clase [@ScrabbleServidor]
   * @return Confirmación de creación de jugador
   * @throws java.rmi.RemoteException 
   */   
  public int crearJugador(String nombre, String Personaje) throws java.rmi.RemoteException;
  /**
   * Devuelve un atributo de tipo Tablero con sus componentes asociados. Método implementado en la clase [@ScrabbleServidor]
   * @return Tablero
   * @throws RemoteException 
   */
  public Tablero getTablero() throws RemoteException; 

  /*
   * Cambia las fichas contenidas en un atril correspondiente al idJugador recibido en el parámetro
   */
  public void cambiarAtril(int idJugador) throws RemoteException;
  
  /*
     * Cambia la ficha escogida por el cliente y actualiza el atril del jugador con una ficha nueva de la bolsa
  */
  
  public void cambiarFicha(int idJugador, String fichaEscogida) throws RemoteException;
  
   /*
     * Actualiza el tablero con los cambios realizados por el cliente y realiza el calculo del puntaje del jugador de acuerdo a la jugada realizada. 
   */

  public void setTablero(ArrayList<Casilla> palabraNueva, int idJugador) throws RemoteException;
    
}
